package com.example.demo.auth;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Result {

	private int code;
	private String msg;
	private Object data;

	public Result() {
		
	}
	
	public Result(int code, String msg, Object data) {
		this.code = code;
		this.msg = msg;
		this.data = data;
	}
	
	
	
	public static Result me(){
		return new Result();
	}


	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	/* 封装返回数据的格式 */
	public String toJson() {
		return JsonKit.general.toJson(this);
	}
	
	public String OK() {
		return this.OK(null);
	}
	
	public String OK(Object data) {
		setCode(0);
		setData(data);
		setMsg("success");
		return this.toJson();
	}
	public String error(String errorMsg) {
		return error(errorMsg, "");
	}
	
	public String error(Object...errorMsg) {
		return error("操作失败！", errorMsg);
	}
	
	
	public String error(Object errorMsg) {
		return error("操作失败！", errorMsg);
	}
	
	public String error(String errorMsg,Object...data) {
		setCode(500);
		setMsg(errorMsg);
		Map<String, Object> map = new HashMap<String, Object>();
		List<Object> value = new ArrayList<Object>();
		if(data!=null && data.length>0) {
			for(Object o1 : data) {
				value.add(o1);
			}
		}
		map.put("list", value);
		setData(map);
		return this.toJson();
	}
	
	public String error(String errorMsg,Object data) {
		setCode(500);
		setMsg(errorMsg);
		setData(data);
		return this.toJson();
	}
	
	/**
	 * 日志打印
	 * @param msg
	 * @return
	 */
	public String log(String msg) {
		return log(msg, null);
	}
	
	/**
	 * 日志打印
	 * @param msg
	 * @param data
	 * @return
	 */
	public String log(String msg,Object data) {
		setCode(100);
		setMsg(msg);
		setData(data);
		return this.toJson();
	}
}
